package com.bea.ftd.encrypt.service;

public interface GatewayEnOpStep {

    /**
     * 将指令发送至加密机
     * @param msg
     * @param n
     * @return
     */
    String SendEncryHost(byte[] msg,int n,String partnerCode);

    /**
     * 签名加密（软加解密）
     * @param partnerCode
     * @param data
     * @return
     */
    String generateSignature(String partnerCode, String data) ;

    /**
     * 签名解密（软加解密）
     * @param partnerCode
     * @param signatureStr
     * @param context
     * @return
     */
    boolean verifySiginature(String partnerCode, String signatureStr, String context);

    /**
     * 国密sm2加密
     * @param partnerCode
     * @param data
     * @return
     */
    String Sm2Encrypt(String partnerCode,String data);

    /**
     * 国密sm2解密
     * @param partnerCode
     * @param data
     * @return
     */
    String Sm2Decrypt(String partnerCode,String data);

    /**
     * ECB模式加密
     * @param partnerCode
     * @param data
     * @return
     */
    String EncryptECB(String partnerCode,String data);

    /**
     * ECB模式解密
     * @param partnerCode
     * @param data
     * @return
     */
    String DecryptECB(String partnerCode,String data);

    /**
     * CBC模式加密
     * @param partnerCode
     * @param data
     * @return
     */
    String EncryptCBC(String partnerCode,String data);

    /**
     * CBC模式解密
     * @param partnerCode
     * @param data
     * @return
     */
    String DecryptCBC(String partnerCode,String data);

}